import random
from _datetime import datetime,timedelta
from flask import current_app
from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand
from info import create_app,db,models#需要知道有models这个文件存在即可

# 传入标记，加载对应的配置环境信息
from info.models import User

app = create_app("develop")

# 创建manager对象，管理appgitg
manager=Manager(app)

# 关联db,app,使用Migrate
Migrate(app,db)

# 给manager添加操作命令
manager.add_command("db",MigrateCommand)

# 创建管理方法
@manager.option('-p', '--password', dest='password')
@manager.option('-u', '--username', dest='username')
def create_superuser(username,password):

    # 1.创建管理员对象
    admin = User()
    # 2.设置属性
    admin.nick_name = username
    admin.mobile = username
    admin.password = password
    admin.is_admin = True
    # 3.保存到数据库
    try:
        db.session.add(admin)
        db.session.commit
    except Exception as e:
        current_app.logger.error(e)
        return "创建失败"
    return "创建ok"

# 添加测试用户
@manager.option('-t', '--test', dest='test')
def add_test_user(test):
    #定义一个空列表
    user_list = []
    #进行1000次遍历
    for i in range(0,1000):
        # 创建用户对象，设置属性
        user = User()
        user.nick_name="老王%d"%i
        user.mobile="138%08d"%i
        user.password_hash="pbkdf2:sha256:50000$9AnUFXvv$6c00daa134b3f8a8f028166589f1d64ceed8be594adc31d69911f232d8173553"

        #设置最后一次登录的时间
        user.last_login = datetime.now()-timedelta(seconds=random.randint(0,3600*24*31))
        #添加到容器中
        user_list.append(user)

    #保存到数据库
    try:
        db.session.add_all(user_list)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return "添加失败"
    return "添加成功"

if __name__ == '__main__':
    manager.run()











